package monte.cs;

import monte.Battle;
import monte.Team;
import monte.exception.NoResultsException;

import java.util.ArrayList;
import java.util.LinkedList;

/**
 * 赛制类
 */
public interface CompetitionSystem {

    /**
     * 依据赛制 生成对战顺序
     *
     * @param teams
     * @throws NoResultsException 如果队伍数量与赛制不匹配 则无法生成对应的对战序列
     */
    void simulate(ArrayList<Team> teams) throws NoResultsException;

    LinkedList<Battle> getResults() throws NoResultsException;

    ArrayList<Integer> getTopTeams() throws NoResultsException;

    CompetitionSystem emptyObject();
}
